package com.summer.bilibili.domain.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.summer.bilibili.domain.article.Article;
import com.summer.bilibili.domain.bangumi.Bangumi;
import com.summer.bilibili.domain.comment.UserComment;
import com.summer.bilibili.domain.user.UserDynamic;
import com.summer.bilibili.domain.user.UserPublish;
import com.summer.bilibili.domain.user.UserRate;
import com.summer.bilibili.domain.user.UserStar;
import com.summer.bilibili.domain.video.Video;
import com.summer.bilibili.domain.video.VideoDanmu;
import com.summer.bilibili.domain.video.VideoPart;
import lombok.Getter;
import lombok.RequiredArgsConstructor;


/**
 * 全部业务类型
 */
@Getter
@RequiredArgsConstructor
public enum BusinessType {
    VIDEO ( 1 , "视频" , Video.class ),
    VIDEO_PART ( 2 , "视频" , VideoPart.class ),
    ANIME ( 3 , "番剧" , Bangumi.class ),
    MOVIE ( 4 , "电影" , Video.class ),
    DYNAMIC ( 5 , "动态" , UserDynamic.class ),
    COMMENT ( 6 , "评论" , UserComment.class ),
    DANMU ( 7 , "弹幕" , VideoDanmu.class ),
    PUBLISH ( 8 , "说说" , UserPublish.class ),
    ARTICLE ( 9 , "文章" , Article.class ),
    RATE ( 10 , "评价" , UserRate.class ),
    STAR ( 11 , "收藏夹" , UserStar.class );

    @EnumValue
    private final int code;
    private final String label;
    private final Class < ? > model;
}
